package com.zenagro.domain.zenagro;

// No beginning comment snippet from this extension MP-MANAGED-ADDED-AREA-BEGINNING @import@// No ending comment snippet from this extension 
// No beginning comment snippet from this extension MP-MANAGED-ADDED-AREA-ENDING @import@// No ending comment snippet from this extension 
import java.sql.*;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;

import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

import org.openxava.annotations.*;

import com.zenagro.domain.zenagro.Solucion;
import com.zenagro.domain.zenagro.Finca;
import com.zenagro.domain.zenagro.Tecnico;
import com.zenagro.domain.zenagro.base.*;

/**
 *
 * <p>Title: Cultivo</p>
 *
 * <p>Description: Domain Object describing a Cultivo entity</p>
 *
 */
@Entity (name="Cultivo")
@Table (name="cultivo")
@Views({
	@View(
		name="base",
		members="id  ; finca  ; referencia  ; tipoSustrato  ; fechaPlantacion; tecnico; analisisSolucionCultivo"),
	@View(
		name="DEFAULT", 
		extendsView="base"),

		@View(name="reference", members="referencia  ; tipoSustrato  ; fechaPlantacion"  )
})

@Tabs({
@Tab(
properties=
     " referencia "
    +",  tipoSustrato ,fechaPlantacion"
)

})
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Cultivo extends Identificable{

	@Required
    @Column(name="referencia",nullable=false,  unique=true)//  length=100,  
    private String referencia;

    @Required
    @Column(name="tipo_sustrato", nullable=false,  unique=false)//  length=100,
    private String tipoSustrato;

    @Column(name="fecha_plantacion", nullable=true)
    @Required
    private Date fechaPlantacion;
  
    @Required
    @ManyToOne //(fetch=FetchType.LAZY ,optional=false) Parece que el lazy da algun problema con JPaCloner!!!!
    @JoinColumn(name="finca_id", referencedColumnName = "id", nullable=false,  unique=false  )
    @ReferenceView ("reference") 
    private Finca finca;

    
    @Required
    @ManyToOne //(fetch=FetchType.LAZY ,optional=false) Parece que el lazy da algun problema con JPaCloner!!!!
    @JoinColumn(name="tecnico_id", referencedColumnName = "id", nullable=false,  unique=false  )
    @ReferenceView ("reference") 
    private Tecnico tecnico;

    //@NewAction("UploadFile.save")
    @OneToMany ( fetch=FetchType.LAZY, mappedBy="cultivoId", cascade=CascadeType.ALL)//, cascade=CascadeType.ALL)
    @CollectionView("reference")
    private Set <AnalisisSolucionCultivo> analisisSolucionCultivo; 
   
    
	


	public String getReferencia() {
		return referencia;
	}


	public void setReferencia(String referencia) {
		this.referencia = referencia;
	}


	public String getTipoSustrato() {
		return tipoSustrato;
	}


	public void setTipoSustrato(String tipoSustrato) {
		this.tipoSustrato = tipoSustrato;
	}


	public Finca getFinca() {
		return finca;
	}


	public void setFinca(Finca fincaId) {
		this.finca = fincaId;
	}
	
	
	public Date getFechaPlantacion() {
		return fechaPlantacion;
	}


	public void setFechaPlantacion(Date fechaPlantacion) {
		this.fechaPlantacion = fechaPlantacion;
	}


	public Tecnico getTecnico() {
		return tecnico;
	}


	public void setTecnico(Tecnico tecnico) {
		this.tecnico = tecnico;
	}


	public Set<AnalisisSolucionCultivo> getAnalisisSolucionCultivo() {
		return analisisSolucionCultivo;
	}


	public void setAnalisisSolucionCultivo(
			Set<AnalisisSolucionCultivo> analisisSolucionCultivo) {
		this.analisisSolucionCultivo = analisisSolucionCultivo;
	}


    


  
}
